A color harmony is a set of one or more colors, where the colors often have a predefined relationship with each other. For example, a user may specify one or more harmony rules and one or more harmony base colors from which a color harmony is generated. A starting base color is one of many parameters that can be used in generating a harmony, and one way to define a harmony rule is to define several colors as offsets from a base color in terms of hue, brightness, and saturation values. In some cases, harmony colors do not have a predefined relationship with each other. For example, a color harmony may be generated by a user identifying one or more colors to be part of the color harmony rather than using a rule that derives the colors. A variety of tools are available for generating a color harmony. For example, Adobe® Illustrator® includes a color harmony generation interface with a color wheel and slider bars for a user to define and adjust a color harmony.
Color harmonies are often used for the purpose of applying them to artwork, where artwork includes images, drawings, or any other visual data that may be colored. Although the examples herein may describe images, these examples may apply to any other type of artwork besides still images, such as video. Typically, to try out a color harmony on an image, the user brings up the colors from their harmony and manually assigns each color to different parts of the image using a coloring tool or selection tool. If the user does not like the appearance of the harmony applied to the image, the user returns to the color harmony generation tool, adjusts the color harmony or defines a new color harmony, opens the adjusted or new color harmony, then manually reassigns the new colors to the image. The user goes back and forth between the color harmony generation tool and manually re-coloring the image until the user is satisfied with the result; this is a time consuming and inefficient process. Some tools allow the user to define a one to one mapping from one color to another color and use the mapping to re-color the image. However, the user must go through and redefine the mapping each time a new color harmony is selected, which is still a time consuming process. Improved methods of color harmony generation and artwork recoloring would be useful.